#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include<openssl/rsa.h>
#include<openssl/evp.h>
#include<openssl/err.h>
#include<openssl/pem.h>
#ifdef _WIN32
#include<openssl/applink.c>
#endif
//生产RSA密钥，返回密钥
EVP_PKEY*GenerKey();
/*
加密函数
param in 输入的明文
param in_len 输入明文的长度
param out 输出的密文
return 密文长度
*/
int Encrypto(const unsigned char *in, int in_len, unsigned char *out);
/*
解密函数
param in 输入的密文
param in_len 输入密文的长度
param out 输出的明文
return 明文长度
*/
int Decrypto(const unsigned char *in, int in_len, unsigned char *out);
/*
签名函数
param data 原始明文
param in_size 明文长度
param sign 签名
return  签名长度
*/
int EVP_Sign(unsigned char *data, int in_size, unsigned char*sign);
/*
验证签名
param data 收到的数据
param in_size 收到数据的长度
param sign 签名
param sign_size 签名长度
return 是否验证成功
*/
bool verify(unsigned char*data,int in_size,unsigned char *sign,int sign_size);